#include "sg90.h"
#include "delay.h"
 int main(void)
 {
  u16 pwmval;	 
  TIM1_PWM_Init(199,7199);//20ms
	delay_init();	    	 //延时函数初始化	  
 	while(1)
   {
 		delay_ms(500);	 
		 pwmval=185;  //90°					 
		TIM_SetCompare1(TIM1,pwmval);	  //1ms  45°  5%  200-200*5%=190
        delay_ms(500);	
		
		 
//		 TIM_SetCompare1(TIM1,195);//0°   
//    delay_ms(500);			 
//		 TIM_SetCompare1(TIM1,190);//45° 	  
//    delay_ms(500);	
//		  TIM_SetCompare1(TIM1,185);//90°  	  
//    delay_ms(500);	
//		  TIM_SetCompare1(TIM1,180);//135° 	  
//    delay_ms(500);	
//		 TIM_SetCompare1(TIM1,175);//180° 	  
//    delay_ms(500);
		 
	 } 
}
 


/*
		 pwmval=200-(5+X/9);  //转X°					 
		TIM_SetCompare1(TIM1,pwmval);

*/






/*
关于PWM周期的计算：
Tout=（psc+1）*(arr+1)/Tclk

关于占空比的计算：
占空比=输出高电平时间/PWM周期

关于TIM_SetCompare1（）函数中对TIM_CCR1的设置：
这里使用的是定时器1的向上计数模式
pwmval=200-200*占空比

以转动到30°为例：

		 pwmval=200-(5+30/9);  //30°					 
		TIM_SetCompare1(TIM1,pwmval);
1
2


通过改变CCR1的值，使舵机实现从0°到180°，每隔45°依次转动：

for(pwmval=195;pwmval>=175;pwmval=pwmval-5)
		{
		     TIM_SetCompare1(TIM1,pwmval);
			   delay_ms(5000);
		}

*/